namespace Acme.MeiTuan.SDK.Response.Store;

public class GetBillListResult
{
    public ExtraInfo extra_info { get; set; }
    public List<BillData> data { get; set; }
}

public class ExtraInfo
{
    /// <summary>
    /// 当前查询时间条件下返回的账单数据总条数
    /// </summary>
    public int total_count { get; set; }
    /// <summary>
    /// 当前查询时间条件下返回的账单数据总结算金额（settleMilli汇总）,单位元
    /// </summary>
    public long settle_sum { get; set; }
}

public class BillData
{
    /// <summary>
    /// 账单的唯一标识id
    /// </summary>
    public string id { get; set; }
    /// <summary>
    /// 门店名称
    /// </summary>
    public string wmPoiName { get; set; }
    /// <summary>
    /// 结算类型，参考值：1-外卖订单;4-餐损赔付;2-订单退款;6-订单部分退款（适用餐饮订单）;3-配送费用;5-服务费返还;7-部分退款冲抵（适用餐饮订单）;9-商服赔付;10-保险费用;11-外卖月推广花费;12-配送小费;13-调整项;15-SLA周期赔付;16-商家账户资金调整;21-广告自动充值费;19-品质节推广花费;20-品质节推广花费-返款;22-代金券售卖佣金;23-代金券售卖佣金-退款;24-商品券售卖佣金;25-商品券售卖佣金-退款;26-订单部分退款（适用闪购订单）;27-部分退款冲抵（适用闪购订单）；28-客服赔付费用；35-订单奖励；36-订单奖励退款；37-交易额转推广费；40-商家补贴；57-推广奖励（付商家）。
    /// </summary>
    public int? billChargeType { get; set; }
    /// <summary>
    /// 结算类型描述，参考值：1-外卖订单;4-餐损赔付;2-订单退款;6-订单部分退款（适用餐饮订单）;3-配送费用;5-服务费返还;7-部分退款冲抵（适用餐饮订单）;9-商服赔付;10-保险费用;11-外卖月推广花费;12-配送小费;13-调整项;15-SLA周期赔付;16-商家账户资金调整;21-广告自动充值费;19-品质节推广花费;20-品质节推广花费-返款;22-代金券售卖佣金;23-代金券售卖佣金-退款;24-商品券售卖佣金;25-商品券售卖佣金-退款;26-订单部分退款（适用闪购订单）;27-部分退款冲抵（适用闪购订单）；28-客服赔付费用；35-订单奖励；36-订单奖励退款；37-交易额转推广费；40-商家补贴；57-推广奖励（付商家）。
    /// </summary>
    public string chargeFeeDesc { get; set; }
    /// <summary>
    /// 用户支付方式，参考值：-1-未知；1-货到付款；2-在线支付。目前外卖订单仅支持在线支付。
    /// </summary>
    public int? userPayType { get; set; }
    /// <summary>
    /// 订单流水号，门店每日已支付订单的流水号从1开始。
    /// </summary>
    public string wmPoiOrderPushDayseq { get; set; }
    /// <summary>
    /// 订单展示ID，与用户端、商家端订单详情中展示的订单号码一致。数据库中请用bigint(20)存储此字段。
    /// </summary>
    public string wmOrderViewId { get; set; }
    /// <summary>
    /// 订单下单时间，精确到秒，时间格式为：YYYY-MM-DD HH:MM:SS
    /// </summary>
    public DateTime? orderTime { get; set; }
    /// <summary>
    /// 订单完成时间，精确到秒，时间格式为：YYYY-MM-DD HH:MM:SS
    /// </summary>
    public DateTime? finishTime { get; set; }
    /// <summary>
    /// 订单退款时间，精确到秒，时间格式为：YYYY-MM-DD HH:MM:SS。如本条记录不涉及有退款时间，此字段返回null。
    /// </summary>
    public DateTime? refundTime { get; set; }
    /// <summary>
    /// 订单当前状态，参考值：1-订单已提交，等待商家确认；2-已退单，等待商家确认；3-商家已收到订单，等待商家确认；4-商家已确认订单，订单已处理；5-订单分配中，订单正在分配；6-配送中，订单配送中；7-已送达，订单已被送达；8-已完成，订单完成；9-已取消，订单取消。
    /// </summary>
    public int? orderState { get; set; }
    /// <summary>
    /// 订单配送方式，以订单完成时刻的配送方式为准。参考值：10-商家自配；20-美团快送；30-美团跑腿；40-美团专送；50-代理商配送；60-到店取餐；70-聚合配送；80-企客光速达；90-企客快速达；100-企客及时达。
    /// </summary>
    public int? shippingType { get; set; }
    /// <summary>
    /// 配送状态，参考值：0-未知；1-已推单；10-已抢单；15-已取餐；20-派送中；40-已送达；100-已取消。如为自配送订单，则配送状态默认为0。
    /// </summary>
    public int? shippingStatus { get; set; }
    /// <summary>
    /// 结算状态，参考值：0-已入账；1-未入账。
    /// </summary>
    public int? accountState { get; set; }
    /// <summary>
    /// 账单日期，返回10位秒级的时间戳，时间默认为账单日期的0:0:0。关于订单账单日期的说明： (1)对于【退款订单】：账单日期(dailyBillDate)是完成时刻所在的日期的0点。 (2)对于【外卖订单】：正常场景，当天下单，当天完成，则账单日期(dailyBillDate)是【订单完成】日期的0点。当天下单，完成时间在第二天凌晨5点前，则该订单账单日期(dailyBillDate)就是【订单下单】日期的0点。当天下单，完成时间在第二天凌晨5点后，则该订单账单日期(dailyBillDate)就是【订单完成】日期的0点。
    /// </summary>
    public long? daliyBillDate { get; set; }
    /// <summary>
    /// 归账日期，返回结算周期。商家在美团平台上建店时，与美团协议约定的门店结算周期（自外卖信息首次发布之日起算）。如订单未入账（accountState=1），此字段返回null。
    /// </summary>
    public string settleBillDesc { get; set; }
    /// <summary>
    /// 商家应收款，单位元。
    /// </summary>
    public decimal settleAmount { get; set; }
    /// <summary>
    /// 商品总价（不含商品包装盒费），单位元。公式：商品总价=商品原价+赠品原价
    /// </summary>
    public decimal totalFoodAmount { get; set; }
    /// <summary>
    /// 商品包装盒费总价，单位元。
    /// </summary>
    public decimal boxAmount { get; set; }
    /// <summary>
    /// 商家活动总支出金额（含赠品成本），单位元。
    /// </summary>
    public decimal activityPoiAmount { get; set; }
    /// <summary>
    /// 美团活动补贴总金额，单位元。
    /// </summary>
    public decimal activityMeituanAmount { get; set; }
    /// <summary>
    /// 代理商活动承担金额，单位元。
    /// </summary>
    public decimal activityAgentAmount { get; set; }
    /// <summary>
    /// 平台服务费，单位元。
    /// </summary>
    public decimal platformChargeFee { get; set; }
    /// <summary>
    /// 订单履约服务费金额，单位元。如订单无履约服务费，则返回0。
    /// </summary>
    public decimal performanceServiceFee { get; set; }
    /// <summary>
    /// 用户支付配送费，为运费优惠前的金额，单位元。
    /// </summary>
    public decimal userPayShippingAmount { get; set; }
    /// <summary>
    /// 用户在线支付金额，为用户实际支付的订单总金额，单位元。
    /// </summary>
    public decimal userOnlinePayAmount { get; set; }
    /// <summary>
    /// 用户线下支付金额，单位元。目前美团订单仅支持在线支付。
    /// </summary>
    public decimal userOfflinePayAmount { get; set; }
    /// <summary>
    /// 平台服务费的费率，单位百分比(%)。是商家在美团平台建店时，与美团协议约定的每单抽佣比例。
    /// </summary>
    public long rate { get; set; }
    /// <summary>
    /// 保底金额，单位元。是商家在美团平台建店时，与美团协议约定的每单保底抽佣金额。
    /// </summary>
    public decimal bottom { get; set; }
    /// <summary>
    /// 退款id，与订单退款消息接口中退款id的值相对应。 目前只有在结算类型(billChargeType)为：2,6,7,26,27时，该字段会有合法值；其他结算类型下，该字段值无意义。当billChargeType=2时，该字段的取值与订单ID相同。
    /// </summary>
    public long refund_id { get; set; }
    /// <summary>
    /// 分成折扣，目前默认返回100。
    /// </summary>
    public int discount { get; set; }
    /// <summary>
    /// 结算金额，单位元。
    /// </summary>
    public decimal settleMilli { get; set; }
    /// <summary>
    /// 结算id，表示账期等信息的结算设置id。同一门店的结算设置不变的情况下，结算id不变。
    /// </summary>
    public string settleSettingId { get; set; }
    /// <summary>
    /// 青山计划-公益捐赠金额，单位元。
    /// </summary>
    public decimal wmDonationAmount { get; set; }
    /// <summary>
    /// 商超-打包袋金额，单位元。注意，打包袋费用规则为： (1)订单打包袋如由美团提供给商家，费用结算美团平台，则打包袋字段wmDoggyBagAmount为0； (2)订单打包袋如由商家自己提供，费用结算给商家，则打包袋字段wmDoggyBagAmount为商家设置金额。
    /// </summary>
    public decimal wmDoggyBagAmount { get; set; }
    /// <summary>
    /// 配送小费，单位元。
    /// </summary>
    public decimal dealTip { get; set; }
    /// <summary>
    /// 商家活动支出分摊到商品上的优惠总金额，单位元。
    /// </summary>
    public decimal productPreferences { get; set; }
    /// <summary>
    /// 商家活动支出的未分摊到商品上的总金额，单位元。
    /// </summary>
    public decimal notProductPreferences { get; set; }
}